home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 1.iso / dist / fw_ddd.idb / usr / freeware / share / ddd-3.3.1 / vsllib / slopes.vsl.z / slopes.vsl
Text File  |  2001-10-09  |  3KB  |  96 lines

  1. // $Id: slopes.vsl,v 1.1 2000/06/09 09:27:27 andreas Exp $
  2. // Slopes
  3.  
  4. // Copyright (C) 1993 Technische Universitaet Braunschweig, Germany.
  5. // Written by Andreas Zeller <zeller@gnu.org>.
  6. // 
  7. // This file is part of DDD.
  8. // 
  9. // DDD is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. // 
  14. // DDD is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. // See the GNU General Public License for more details.
  18. // 
  19. // You should have received a copy of the GNU General Public
  20. // License along with DDD -- see the file COPYING.
  21. // If not, write to the Free Software Foundation, Inc.,
  22. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23. // 
  24. // DDD is the data display debugger.
  25. // For details, see the DDD World-Wide-Web page, 
  26. // `http://www.gnu.org/software/ddd/',
  27. // or send a mail to the DDD developers <ddd@gnu.org>.
  28.  
  29. // Version
  30. slopes_version() = "$Id: slopes.vsl,v 1.1 2000/06/09 09:27:27 andreas Exp $";
  31.  
  32. // Synonyms
  33. slopethickness() = rulethickness();
  34. rise() = rise(slopethickness());
  35. fall() = fall(slopethickness());
  36.  
  37. // Makros
  38. // Arrows
  39. _arrowheadsize() = rulethickness() * 6;
  40. _n_arrowhead() = fix((rise() & vrule() & fall()) ^ _arrowheadsize());
  41. _w_arrowhead() = fix((rise() | hrule() | fall()) ^ _arrowheadsize());
  42. _s_arrowhead() = fix((fall() & vrule() & rise()) ^ _arrowheadsize());
  43. _e_arrowhead() = fix((fall() | hrule() | rise()) ^ _arrowheadsize());
  44.  
  45. n_arrow() = _n_arrowhead() | hcenter(vrule());
  46. w_arrow() = _w_arrowhead() & vcenter(hrule());
  47. s_arrow() = hcenter(vrule()) | _s_arrowhead();
  48. e_arrow() = vcenter(hrule()) & _e_arrowhead();
  49.  
  50. ns_arrow() = n_arrow() | s_arrow();    // Arrows with common origin
  51. we_arrow() = w_arrow() & e_arrow();
  52. sn_arrow() = s_arrow() | n_arrow();     // Arrows with common target
  53. ew_arrow() = e_arrow() & w_arrow();
  54.  
  55. _ne_arrowhead() = fix(((hrule() | fill()) & vrule()) ^ _arrowheadsize());
  56. _se_arrowhead() = fix(((fill() | hrule()) & vrule()) ^ _arrowheadsize());
  57. _nw_arrowhead() = fix((vrule() & (hrule() | fill())) ^ _arrowheadsize());
  58. _sw_arrowhead() = fix((vrule() & (fill() | hrule())) ^ _arrowheadsize());
  59.  
  60. ne_arrow() = rise() ^ (fill() & _ne_arrowhead() | fill());
  61. se_arrow() = fall() ^ (fill() | fill() & _se_arrowhead());
  62. sw_arrow() = rise() ^ (fill() | _sw_arrowhead() & fill());
  63. nw_arrow() = fall() ^ (_nw_arrowhead() & fill() | fill());
  64.  
  65. // Angles
  66. n_angle() = rise() & fall();
  67. w_angle() = rise() | fall();
  68. s_angle() = fall() & rise();
  69. e_angle() = fall() | rise();
  70.  
  71. // Punch cards
  72. _punchcardcornersize() = rulethickness() * 10;
  73. _punchcardcorner() = fix(rise() ^ _punchcardcornersize());
  74. punchcard(box) = 
  75.   (_punchcardcorner() | vrule() & fill() | hrule())
  76. & (n_rule() | box & vwhite() | s_rule())
  77. & vrule();
  78.  
  79. // Rhombs
  80. _rhomb(box) =
  81. fix((
  82.     space(box / 2) & n_angle() & space(box / 2)
  83. |    w_angle()      & box       & e_angle()
  84. |    space(box / 2) & s_angle() & space(box / 2)
  85. ) ^ space(box * 2));
  86. rhomb(box) = _rhomb(whiteframe(box));
  87.  
  88. // Octogons
  89. _octogon(box) =
  90. fix((
  91.     rise() & (hrule() | fill()) & fall()
  92. |   vrule() & fill() & vrule()
  93. |    fall() & (fill() | hrule()) & rise()
  94. ) ^ square(box) ^ center(box));
  95. octogon(box) = _octogon(whiteframe(box));
  96.